]> dgit.raspbian.org Git - gnome-shell.git/commitdiff
background: Check xml mime type instead of extension
authorAlexander Mikhaylenko <exalm7659@gmail.com>
Fri, 16 Apr 2021 14:17:33 +0000 (19:17 +0500)
committerAlexander Mikhaylenko <exalm7659@gmail.com>
Fri, 16 Apr 2021 14:53:53 +0000 (19:53 +0500)
This is required to be able to set animated wallpapers with the wallpaper
portal, which names them 'background' without an extension.

See https://gitlab.gnome.org/bertob/nostalgia/-/merge_requests/12

Part-of: <https://gitlab.gnome.org/GNOME/gnome-shell/-/merge_requests/1816>

js/ui/background.js

index df2d98112f56dcb66138b32e6c10ce50eff96f25..1f7c5e57200c20462141a44167f1d39a0379a541 100644 (file)
@@ -101,6 +101,8 @@ const LoginManager = imports.misc.loginManager;
 const Main = imports.ui.main;
 const Params = imports.misc.params;
 
+Gio._promisify(Gio._LocalFilePrototype, 'query_info_async', 'query_info_finish');
+
 var DEFAULT_BACKGROUND_COLOR = Clutter.Color.from_pixel(0x2e3436ff);
 
 const BACKGROUND_SCHEMA = 'org.gnome.desktop.background';
@@ -479,8 +481,15 @@ var Background = GObject.registerClass({
         }
     }
 
-    _loadFile(file) {
-        if (file.get_basename().endsWith('.xml'))
+    async _loadFile(file) {
+        const info = await file.query_info_async(
+            Gio.FILE_ATTRIBUTE_STANDARD_CONTENT_TYPE,
+            Gio.FileQueryInfoFlags.NONE,
+            0,
+            null);
+
+        const contentType = info.get_content_type();
+        if (contentType === 'application/xml')
             this._loadAnimation(file);
         else
             this._loadImage(file);